#ifndef HERO_H
#define HERO_H

#include <string>

class Hero
{
    public:
        Hero();

        //A privát adattagokat lekérdező függvények.
        std::string GetClass() const
        {
            switch(class_chosen)
            {
                case 1:
                    return ("Harcos");
                    break;
                case 2:
                    return ("Pap");
                    break;
                case 3:
                    return ("Varazslo");
                    break;
            }
        }
        int GetXP() const {return char_xp;}
        int GetHP() const {return char_hp;}
        int GetLevel() const {return char_level;}
        std::string GetName() const {return char_name;}
        int GetAttack() const {return char_attackpoints[GetLevel()-1];}
        double GetMultiply(int x) const {return char_skillmultiply[x];}
        std::string GetAttackName(int x) const {return char_skillnames[x];}
        int GetArmor() const {return char_armorpoints[GetLevel()-1];}
        int GetSpeed() const {return char_speedpoints[GetLevel()-1];}
        int GetMaxHP() const {return char_maxhealthpoints[GetLevel()-1];}
        int GetCurrentQ() const {return currentQ;}

        //A privát adattagokat beállító függvények.
        void SetQNumber(int);
        void SetHP(int);
        void LevelUp();

        void LoadCharacter(std::string); //karakter betöltése
        void SaveCharacter(); //karakter mentése
        void IncreaseXP(int); //tapasztalati pont növelése
        void CreateChar(); //karakter létrehozása
        void WriteStats() const; //karakter tulajdonságainak kiírása
        void LoadClass(std::string); //kaszt betöltése fájlból

        int IsNumber(std::string); //bementi számok ellenőrzése
    private:
        int class_chosen;
        int char_xp;
        int char_hp;
        int char_level;
        std::string char_name;
        int char_attackpoints[8];
        int char_armorpoints[8];
        int char_speedpoints[8];
        int char_maxhealthpoints[8];
        std::string char_skillnames[4];
        double char_skillmultiply[4];
        int level_up[8];
        int currentQ;
};

#endif // HERO_H
